package fiuba.td.fabrica.model.entities;

import junit.framework.TestCase;

import org.junit.Test;

import fiuba.td.fabrica.services.GlobalService;

public class FabricaTest extends TestCase {
	private Fabrica fabrica;
	
	public void setUp() throws Exception {
		this.fabrica = new Fabrica("Fabrica FUIBA");
	}
	
	
	@Test
	public void testCrearLineaProduccion (){
		LineaProduccion lineaProduccion = this.fabrica.crearLineaProduccion();
		assertTrue(this.fabrica.getLineasProduccion().contains(lineaProduccion));
	}
	
	@Test
	public void testComprarMaquina() {
		Maquina maquinaModelo = GlobalService.getInstance().getMaquinasXml().get(0);
		LineaProduccion lineaProduccion = this.fabrica.crearLineaProduccion();
		Maquina maquina = fabrica.comprarMaquina(maquinaModelo, lineaProduccion);
		
		assertTrue(lineaProduccion.getMaquinas().contains(maquina));
	}

	@Test
	public void testQuitarMaquina() {
		Maquina maquinaModelo = GlobalService.getInstance().getMaquinasXml().get(0);
		LineaProduccion lineaProduccion = this.fabrica.crearLineaProduccion();
		Maquina maquina = fabrica.comprarMaquina(maquinaModelo, lineaProduccion);
		assertTrue(lineaProduccion.getMaquinas().contains(maquina));
		
		fabrica.quitarMaquina(maquina);
		assertTrue(!lineaProduccion.getMaquinas().contains(maquina));
	}
	

	@Test
	public void testDestruirLineaProduccion (){
		LineaProduccion lineaProduccion = this.fabrica.crearLineaProduccion();	
		this.fabrica.destruirLineaProduccion(lineaProduccion);
		
		assertTrue(this.fabrica.getLineasProduccion().isEmpty());
	}
	
}
